1312. Minimum Insertion Steps to Make a String Palindrome - LeetCode Solution


Dynamic Programming

Python Code:

class Solution:
    def minInsertions(self, s: str) -> int:
        a = s
        b = s[::-1]
        
        t = []
        
        for i in range(len(a) + 1):
            l = []
            for j in range(len(b) + 1):
                l.append(0)
            t.append(l)
        
        for i in range(1, len(a) +1, 1):
            for j in range(1, len(b) + 1, 1):
                if a[i-1] == b[j-1]:
                    t[i][j] = 1 + t[i-1][j-1]
                else:
                    t[i][j] = max(t[i-1][j], t[i][j-1])
        
        return len(a) - t[len(a)][len(b)]
    
        


Comments

Submit
0 Comments
More Questions

1647A - Madoka and Math Dad
710A - King Moves
1131A - Sea Battle
118A - String Task
236A - Boy or Girl
271A - Beautiful Year
520B - Two Buttons
231A - Team
479C - Exams
1030A - In Search of an Easy Problem
158A - Next Round
71A - Way Too Long Words
160A - Twins
1A - Theatre Square
1614B - Divan and a New Project
791A - Bear and Big Brother
1452A - Robot Program
344A - Magnets
96A - Football
702B - Powers of Two
1036A - Function Height
443A - Anton and Letters
1478B - Nezzar and Lucky Number
228A - Is your horseshoe on the other hoof
122A - Lucky Division
1611C - Polycarp Recovers the Permutation
432A - Choosing Teams
758A - Holiday Of Equality
1650C - Weight of the System of Nested Segments
1097A - Gennady and a Card Game